export default {
	/* 
		actions:两个参数。context、外面传的参数
		mutations：state、外面传的参数
		getters：state
	 */
	// 开辟命名空间
	namespaced: true,
	// 数据存储
	state: () => ({
		// 收货地址
		// 读取本地的收货地址，初始化address对象,如果本地存储里面获取不到，那么就返回一个空对象
		address: JSON.parse(uni.getStorageSync('address') || '{}')
	}),

	// 方法
	mutations: {
		// 更新收货地址
		updataAddress(state, address) {
			state.address = address
			// 本地持久化存储,需要加上m_user/这个前缀
			this.commit('m_user/saveAddressToStorage')
		},
		// 定义一个将收货地址存储到本地storage中的方法
		saveAddressToStorage(state) {
			// 该方法只能接受字符串类型数据
			uni.setStorageSync('address', JSON.stringify(state.address))
		}
	},

	// 数据包装器
	getters: {
		// 为了提高代码的复用性，把my-address组件中的收货详细地址抽离为getters，方便在多个页面和组件之间实现复用
		// 收货详细地址的计算属性
		addstr(state) {
			if (!state.address.provinceName) return ''

			// 拼接 省，市，区，详细地址 的字符串并返回给用户
			return state.address.provinceName + state.address.cityName + state.address.countyName + state.address
				.detailInfo

		}
	}

}
